A typical computer system has a computer connected to various peripheral devices. The computer has an operating system having a file system and device driver. The file system manages files and handles requests by application programs to access the files. The device driver controls I/O access to the peripheral devices.
In the typical computer system, both the file system and device driver maintain various real time status data to perform their respective functions. As an example, the file system maintains real time status data indicating a number of I/O access requests currently queued. As another example, the device driver maintains real time status data indicating whether a floppy disk drive controlled thereby is currently inaccessible.
In many instances, it would be valuable to computer system efficiency for the file system to have real time access to the real time status information within the device driver. Similarly, it would be valuable to computer system efficiency for the device driver to have real time access to the real time status information maintained by the file system.
Previously, however, the potential value of such real time access has not been recognized, and such real time access has not been available between the file system and device driver. Conventional file systems and device drivers have instead functioned independently of each other, communicating only with respect to specific I/O access operations requested by the file system of the device driver. Furthermore, such communication has been in delayed rather than real time. As a result, previous file systems have been unable to take advantage of real time status data maintined by a device driver. Likewise, previous device drivers have been unable to take advantage of real time status data maintained by a file system.
A similar limitation of previous computer systems is that information regarding peripheral device limitations has been unavailable to the file system. Typically, the device driver maintains device constraint information indicating limitations of a peripheral device or devices it controls. Previously, the potential value of providing such device contraint data to the file system also has remained unrecognized, and such device constraint data has remained unavailable to the file system. As a result, previous file systems have been unable to take advantage of device constraint data available to the device driver.